// config/api-simple.js - 简化的API配置文件，适用于微信小程序

// API配置
const API_CONFIG = {
  // 门诊充值记录服务 (8084端口)
  RECHARGE_BASE_URL: 'http://localhost:8084',
  
  // 就诊人管理服务 (8080端口)
  PATIENT_BASE_URL: 'http://localhost:8080'
}

// 充值记录API
const rechargeAPI = {
  // 获取充值记录列表
  getList: (params = {}) => {
    return new Promise((resolve, reject) => {
      wx.showLoading({
        title: '加载中...'
      })

      wx.request({
        url: `${API_CONFIG.RECHARGE_BASE_URL}/recharge/list`,
        method: 'GET',
        data: params,
        header: {
          'Content-Type': 'application/json',
          'Authorization': wx.getStorageSync('token') || ''
        },
        success: (res) => {
          wx.hideLoading()
          if (res.statusCode === 200) {
            resolve(res.data)
          } else {
            reject(new Error(`请求失败: ${res.statusCode}`))
          }
        },
        fail: (error) => {
          wx.hideLoading()
          console.error('网络请求失败:', error)
          reject(new Error('网络请求失败'))
        }
      })
    })
  },

  // 获取充值记录详情
  getDetail: (id) => {
    return new Promise((resolve, reject) => {
      wx.showLoading({
        title: '加载中...'
      })

      wx.request({
        url: `${API_CONFIG.RECHARGE_BASE_URL}/recharge/detail/${id}`,
        method: 'GET',
        header: {
          'Content-Type': 'application/json',
          'Authorization': wx.getStorageSync('token') || ''
        },
        success: (res) => {
          wx.hideLoading()
          if (res.statusCode === 200) {
            resolve(res.data)
          } else {
            reject(new Error(`请求失败: ${res.statusCode}`))
          }
        },
        fail: (error) => {
          wx.hideLoading()
          console.error('网络请求失败:', error)
          reject(new Error('网络请求失败'))
        }
      })
    })
  }
}

// 就诊人管理API
const patientAPI = {
  // 获取就诊人列表
  getList: () => {
    return new Promise((resolve, reject) => {
      wx.request({
        url: `${API_CONFIG.PATIENT_BASE_URL}/patient/list`,
        method: 'GET',
        header: {
          'Content-Type': 'application/json',
          'Authorization': wx.getStorageSync('token') || ''
        },
        success: (res) => {
          if (res.statusCode === 200) {
            resolve(res.data)
          } else {
            reject(new Error(`请求失败: ${res.statusCode}`))
          }
        },
        fail: (error) => {
          console.error('网络请求失败:', error)
          reject(new Error('网络请求失败'))
        }
      })
    })
  },

  // 添加就诊人
  add: (data) => {
    return new Promise((resolve, reject) => {
      wx.request({
        url: `${API_CONFIG.PATIENT_BASE_URL}/patient/add`,
        method: 'POST',
        data: data,
        header: {
          'Content-Type': 'application/json',
          'Authorization': wx.getStorageSync('token') || ''
        },
        success: (res) => {
          if (res.statusCode === 200) {
            resolve(res.data)
          } else {
            reject(new Error(`请求失败: ${res.statusCode}`))
          }
        },
        fail: (error) => {
          console.error('网络请求失败:', error)
          reject(new Error('网络请求失败'))
        }
      })
    })
  },

  // 设置默认就诊人
  setDefault: (id) => {
    return new Promise((resolve, reject) => {
      wx.request({
        url: `${API_CONFIG.PATIENT_BASE_URL}/patient/setDefault/${id}`,
        method: 'POST',
        header: {
          'Content-Type': 'application/json',
          'Authorization': wx.getStorageSync('token') || ''
        },
        success: (res) => {
          if (res.statusCode === 200) {
            resolve(res.data)
          } else {
            reject(new Error(`请求失败: ${res.statusCode}`))
          }
        },
        fail: (error) => {
          console.error('网络请求失败:', error)
          reject(new Error('网络请求失败'))
        }
      })
    })
  }
}

// 导出API对象
module.exports = {
  recharge: rechargeAPI,
  patient: patientAPI,
  config: API_CONFIG
} 